package com.itcam.list_.collection_.list_;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * Author:Cammy.Wu
 * Date:2024-06-02
 * Description:
 */

public class ListDemo01 {
    /**
     * List接口的特点：存取有序，有索引，可以存储重复的
     * 和索引有关的API：
     * public void add(int index,E element):在指定的索引位置，添加元素
     * public E remove(int index):根据索引删除集合中的元素
     * public E set(int index,E element):根据索引修改集合中的元素
     * public E get(int index):返回指定索引处的元素
     */
    public static void main(String[] args) {
        // list是一个接口，不能直接new对象，创建的应该是他的实现类对象
        // 编译类型 T = new 运行类型();
        List<String> list = new ArrayList<>();

        list.add("张冠李戴");
        list.add("李代桃僵");
        list.add("王五");

        String remove = list.remove(2);
        System.out.println("remove = " + remove);

        System.out.println("list = " + list);

        list.set(0, "GG Bond");
        System.out.println("list = " + list);
        list.add(0, "张冠李戴");
        System.out.println("list = " + list);

        String s = list.get(1);
        System.out.println("s = " + s);

        System.out.println("--------------------------------------");

        //存储类型是整数，又想根据元素删除就需要给元素装箱
        List<Integer> list1 = new ArrayList<>();

        list1.add(111);
        list1.add(222);
        list1.add(333);
        Collections.shuffle(list1);
        System.out.println("list1 = " + list1);

        list1.remove(Integer.valueOf(222));
        System.out.println("list1 = " + list1);
    }
}
